Inexpensive computer-aided learning methods and apparatus

ABSTRACT

A computer-aided learning method and apparatus to learn materials. In one embodiment, the apparatus retrieves a user identifier entered by the user, and determines whether the user is a learning user or an institute user. If the user is a learning user, the apparatus allows the user to access information regarding learning materials, which could be a project for the user. Not only does the apparatus provide the user the freedom as to where and when to learn, and the guidance as to what to learn, the user does not have to pay. If the user is an institute user, the apparatus permits the user to learn materials regarding at least one learning user. The institute user might be interested to use the apparatus to recruit employees to fill job openings. The apparatus can also track and update information regarding the users.

CROSS-REFERENCE TO RELATED APPLICATIONS

This is a continuation of U.S. patent application Ser. No. 11/586,307, filed on Oct. 26, 2006, entitled “Computer-Aided Learning Methods and Apparatus on Projects,” which application is a continuation of U.S. patent application Ser. No. 10/692,274, filed on Oct. 22, 2003, and subsequently issued on Apr. 10, 2007, as U.S. Pat. No. 7,201,580, entitled “Inexpensive computer-aided learning methods and apparatus for learners,” which application claims priority to U.S. patent application Ser. No. 10/113,225, filed on Mar. 30, 2002, and subsequently issued on Feb. 3, 2004, as U.S. Pat. No. 6,685,478, entitled “Inexpensive computer-aided learning methods and apparatus for learners,” which application claims priority to U.S. patent application Ser. No. 09/290,770, filed on Apr. 13, 1999, and subsequently issued on Jun. 4, 2002, as U.S. Pat. No. 6,398,556, entitled “Inexpensive computer-aided learning methods and apparatus for learners,” which application is a continuation-in-part of U.S. patent application Ser. No. 09/110,569, filed on Jul. 6, 1998 and subsequently issued on Oct. 3, 2000, as U.S. Pat. No. 6,126,448, entitled “Computer-Aided Learning And Counseling Methods And Apparatus For A Job;” and U.S. patent application Ser. No. 09/273,392, filed on Mar. 22, 1999, and subsequently issued on Apr. 10, 2001, as U.S. Pat. No. 6,213,780, entitled “Computer-aided learning and counseling methods and apparatus for a job”; all incorporated by reference into this application.

BACKGROUND OF THE INVENTION

This invention relates generally to computer-aided learning methods and apparatus, and more particularly to inexpensive computer-aided learning methods and apparatus on projects.

We are living in the midst of tremendous technological changes. In the workplace, technology is replacing numerous workers. Many of our job skills might become obsolete within years. Though technology is permeating gradually into every stratum of the society, it is very hard to keep up with so much changes.

Not only is it hard to keep up, technology has made the world much smaller, and global competition much more intense. Not only facing global competition, we are also challenged by the younger generation. Many of them have access to computers and the Web at a very young age. They might be much more effective and efficient than the older generation in performing computer-oriented jobs.

Drastic and rapid changes in the economy lead to massive re-deployment of the labor force. Due to technology revolutions in the industrial nations, and social upheaval in many third-world countries, every year, thousands of job titles with their job functions are being eliminated. Numerous industries experience massive layoffs, which are usually more geared towards the older and higher-paid employees. This problem is exacerbated by the aging of the population when employers tend to retain the younger work force, with more current education. Many employees are in transition. They need jobs. Such global challenges are not limited to the private industries. Millions of civil service employees and military personnel have to be re-trained.

Employees have to learn. However, employees may not have time to learn. Computer-aided learning alleviates some of the problem because learning from a computer at least allows users to learn at their own pace and, to a certain degree, in a location more convenient to them. But, computer-aided learning is a new medium of learning, not accustomed to by many. To ask them to pay a high tuition to learn through a new medium is unreasonable. Moreover, many may not be accustomed to learn while working. They assume that they have finished with all of their learning at schools. Also, for the numerous employees-in-transition, they may not be interested to pay to learn at all.

From the employers' perspective, they need to stay competitive. Employers have to produce good products and services at reasonable prices. With competition from so many directions, employers have to constantly re-train their employees and recruit new ones. It is also not uncommon for employers to lay off some of them.

It is a constant challenge for employers to decide whom to hire. Just as employees need to learn about new job skills, employers need to learn about the strengths, weaknesses and preferences of their employees or potential employees.

It should be apparent that there is a need to automatically provide appropriate learning materials in an inexpensive and easily accessible manner to employees, while providing information about potential employees to employers.

SUMMARY OF THE INVENTION

The present invention provides computer-aided learning methods and apparatus to learn materials.

In one embodiment, a computer-aided learning system can provide users with learning materials in an easily accessible manner, significantly increasing their freedom to choose when and where to learn. The learning materials can also be quickly updated. In view of the drastic technological and societal changes, it is imperative that learning materials have to constantly keep pace with the changes.

On the other hand, learning through a computer has at least one major challenge. It is a relatively new approach to learning. Since many assume that they have done with all of their learning at schools, and are skeptical to anything that is not traditional, they are not interested in paying a lot of money to learn from a computer.

Though many do not want to pay a lot to learn from computers, computer-aided learning materials are not cheap to produce. It is difficult to prepare good computer-aided learning materials that not only can capture our attention, but also teach effectively. Companies that have invested heavily in producing these materials are not about to sell them inexpensively. They need to recoup their investment.

Drastic technological and society changes require companies to transform themselves to stay competitive. They need to find people to do new jobs. Hiring the right employee is a critical success factor for many employers. Many companies are willing to pay at least 20% of the first annual income of their new hires to recruiters because recruiters save them time in finding and pre-screening candidates. Also, good recruiters know their candidates, and are able to provide companies with valuable information on them. Typically, companies have a better chance of making the right hiring decision if they have more information on a candidate.

New computer-aided learning systems and methods can provide a lot of learning information regarding a user, as taught in a number of issued patents, such as Learning System And Method Based on Review, U.S. Pat. No. 5,863,208; Methods and Apparatus To Assess And Enhance A Student's Understanding In A Subject, U.S. Pat. No. 5,779,486; Relationship-Based Computer-Aided Educational System, U.S. Pat. No. 5,727,951; Reward Enriched Learning System And Method, U.S. Pat. No. 5,743,746; and Learning Method And System Based on Questioning, U.S. Pat. No. 5,836,771.

Information on users' learning activities is very useful for employers because they provide indication on many factors, including what the users know and their preferences. Many companies are willing to pay for such information.

In view of the above observations and insights, in one embodiment, the invented methods and apparatus provide inexpensive computer-aided learning materials to users to work on, which could be projects for the users. Such users can be known as learning users. Though the materials can be of high quality and can be specifically tailored to the needs of the users, the learning users do not have to pay to learn from the materials. The costs of the learning materials and the services providing them are predominantly paid for by employers or institute users. In return, the institute users are allowed to access information regarding the learning users. The information can help institute users recruit the right people for their job openings, such as based on information from the learning activities of potential employees.

In one embodiment, there are at least two types of users: Learning users and institute users. An institute user can be a representative from a company, or can be a software agent from the company. An apparatus is configured to retrieve a user identifier entered by a user, and determine the type of user based on the identifier.

If the user is a learning user, the apparatus allows the user to access information regarding learning materials. The apparatus can track the user's learning activities and update the user's profile accordingly.

If the user is an institute user, the apparatus allows the user to access information regarding at least one learning user. As the institute user is querying information, the apparatus can track the institute user's activities and keep a log of its use. If the institute user is interested in recruiting, the apparatus may automatically perform the best match between attributes of the potential candidate for the job and attributes of the users in its database. In yet another embodiment, the institute user may also use the present invention to conduct in-house training for its employees.

To encourage learning users to learn, they do not have to pay much to learn. If possible, money should not be a factor that deters users to learn from the apparatus. On the other hand, institute users have to pay significantly more than the learning users to access information from the apparatus. In one embodiment, it is free for the learning users to access information regarding learning materials, which could be projects for the users, but institute users have to pay to access information regarding learning users from the apparatus.

Other aspects and advantages of the present invention will become apparent from the following detailed description, which, when taken in conjunction with the accompanying drawings, illustrates by way of example the principles of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows one set of steps to implement one embodiment of the present invention.

FIG. 2 shows an apparatus to implement one embodiment of the present invention.

FIG. 3 shows examples of different types of users for the present invention.

FIG. 4 shows examples of attributes of the learning user in the present invention.

FIG. 5 shows examples of tracking attributes of the learning user in the present invention.

FIG. 6 shows examples of interests of the institute users in the present invention.

FIGS. 7 A-B show examples of hardware to implement one embodiment of the present invention.

Same numerals in FIGS. 1-7 are assigned to similar elements in all the figures. Embodiments of the invention are discussed below with reference to FIGS. 1-7. However, those skilled in the art will readily appreciate that the detailed description given herein with respect to these figures is for explanatory purposes as the invention extends beyond these limited embodiments.

DETAILED DESCRIPTION OF THE INVENTION

There are a number of ways to implement the present invention. FIG. 1 shows one set of steps, 100, to implement one such embodiment by, for example, an apparatus shown in FIG. 2, while FIG. 3 shows examples of different types of users using the apparatus. There can be other types of users, such as system administrators, but only two are shown in FIG. 3.

In one embodiment, there are at least two types of users: Those who are primarily interested to use the apparatus 200 to work on learning materials, and they are known as the learning users, 252; and those who are primarily interested in learning about the learning users, and they are known as the institute user, 254. In another embodiment, if the user is primarily interested in finding a job or in career counseling, the user would be classified as a learning user. In yet another embodiment, a learning user is not allowed to access the learning activities of other learning users through the apparatus. In one embodiment, a learning user is not allowed to access the learning end results of other learning users through the apparatus. Learning end results can be defined as the end results of learning a subject matter, such as the grade one gets after finishing a course, or whether one has received a certificate or graduated from a course.

An institute user, 254, can be a school, 256, or a company, 258; or a representative from a school or a company. Each user has its own user identification, which can be a number that identifies the user.

A retriever 202 retrieves (Step 102) the user identifier 250 entered by the user into the apparatus. In one embodiment, the user is a first time user, and the apparatus 200 asks the user a number of questions. Based on the answers, the apparatus creates a user profile of the user, which contains information regarding the user.

Initially, for example, the user may be asked if he is a primarily interested to work on learning materials. If his answer is yes, he would be classified as a learning user. If his answer is no, he would be classified as an institute user.

FIG. 4 shows examples of information or attributes regarding a learning user, 300. One attribute is his contact information, 302, such as his residential address, phone number and email address.

Another attribute is his educational background 304, including his year(s) of graduation, degree(s) obtained and name(s) of school(s). The educational background can also include his previous learning history, such as classes he took, when he took them and whether he received graduation certificates or not.

Another attribute is his work experience 306, including his previous job title(s), 308, and previous job(s) performed, 310, such as the type of projects, and when they were done. Such questions can be presented as multiple choice questions for the user to pick an answer.

Another attribute can be his preferences, 312, including salary, 314, location, 316, time, 318, and job 320. The location preference includes his preferred work location, such as working two days from home, and three days at a location within a 50 miles radius from home. The location preference can also include his preferred learning location. The time preference includes his preferred work hours, such as from 9 am to 5 pm, or willingness to work overtime every other workday during the workweek. The time preference, 318, can also include his preferred learning time, such as at night after 6 pm. The job preference, 320, includes the type of job he is interested in, such as to be a Web master.

Another attribute can be his learning objective, 322, including what he wants to learn. The learning objective, 322, can be determined for him, based on, for example, his job preference, educational background and previous work experience. This will be further explained below.

Other additional attributes include his name. The user may be asked to scan in his picture, which can be a JPEG file.

It can be up to the user to decide if he wants to enter some of the above information, such as his picture, into his user profile. Also, certain information in his profile can be kept confidential if the user desires. For example, the apparatus can maintain his contact information confidential, restricting institute users from gaining access, unless permitted by the learning user otherwise.

In one embodiment, information about the learning user can be categorized as confidential and non-confidential. Institute users have access to non-confidential information, but confidential information is not accessible without express consent from the learning user. When the learning user is entering information into the apparatus, he can also designate them as confidential or non-confidential.

In another embodiment, the user is not a first time user. He enters his user identifier into the apparatus. The retriever 202 retrieves the user identifier entered for a determinator 204 to determine (Step 104) its type. In this example, the user is a learning user, 252, and is allowed (Step 106) access to learning materials. The learning materials can be in a learning materials storage medium, 206, which may be accessible through a network, such as the World Wide Web.

In one embodiment, a learning material ascertainer, 208, ascertains learning materials for the learning user, 252. The ascertainer can ascertain a learning objective for the user, which depends on information regarding the user.

The ascertainer can identify the objective or learning materials based on applying a set of rules to, for example, the user's educational background, work experience and preferences. The user's work experience provides indications on his experience and knowledge in specific areas. As an example, if he spends a lot of time on a project, the ascertainer infers that he understands the project, and the subject areas behind the project. This implies that he does not need to work on introductory materials in those areas. To illustrate, the ascertainer can consider the amount of time to train an average user with similar educational background as the user for a job the user prefers. If a recent computer science graduate needs to take a two-semester class to become an average Java programmer, and if the user has been working on C++ projects for the past five years, the ascertainer would decide that he only needs to take a one-semester class with less introductory materials to become an average Java programmer. Another example is that the preferred job is to be a patent paralegal. The user has been a general paralegal for the last six years, but does not understand the procedures of patent prosecution. Then the learning objective would be to learn such procedures in the next nine months.

Based on the ascertained learning objective, the ascertainer could also select for the user, or guide the user to, learning materials to prepare the user for the job position. For example, the objective is to learn how to speak introductory Spanish in six months. The ascertainer can then select the place and the time to learn, or can identify the computer-based training classes available for her to learn. The identification process can be based on key words. As another example, the learning objective is to learn how to write fictions. Then, the ascertainer, based on words such as write and fictions, searches the learning material storage medium or other resources for learning materials whose titles have the same two key words.

In one embodiment, the ascertainer directly identifies learning materials for the user, without first identifying his learning objective.

One embodiment includes a presenter, 210, for presenting the ascertained learning materials to the user.

The learning user's information, including his usage of the apparatus, 200, can be tracked by the apparatus, 200. One embodiment includes a tracker 212 to track the user's information or attributes (Step 108), and an updater 214 to update (Step 110) the user's profile, such as his learning profile, based on the tracked information. In one embodiment, tracking includes analyzing, and the tracked information includes analyzed information.

FIG. 5 shows examples of attributes or information regarding the user that the tracker 212 can track. They include the user's contact information, 302, work experience, 306, and preferences 312. As the user logs into the apparatus, 200, the apparatus can ask the user if he has recently changed anyone of the above attributes to keep track of his progress and interests. If he has, the updater 214 can update the user profiles accordingly. In one embodiment, the user can access and change his profile directly.

The tracker can also track the user's learning activities, 350. This can include the classes he has received certificates from after graduation, 352; the degree he received; the duration of time it took him to get the certification or the degree, 354; and his performance, if available. The learning activities can also include the frequencies he worked on an area, 356.

Rules can be applied to such tracked information to provide additional information regarding the user, such as indication as to the user's understanding level in an area. For example, if an average user takes one month to finish the course, and he needs a much longer time period, such as three months, probably, he is weak in that subject. Another example is that if he works on an area repeatedly, probably, he is quite weak in that area.

The learning activities can also include the areas, 358, he has not worked on. For example, he is using the apparatus to learn features in a new product, 368, of a company. It turns out that he has never worked one specific feature the company believes customers really value. This might provide indication to the company as to the importance of that feature.

The information tracked, either by themselves or after analysis, can be provided to the updater 214 to update information regarding the user, such as updating his profile previously stored. For example, he has received a certificate from a company after he finished the training program offered by the company on its new product. His user profile can be updated by such information. As another example, if the analyzed result is that he is strong in fixing engines, such information is stored in his user profile. In one embodiment, with his permission, institute users are allowed access to such information.

The tracking and updating processes can be for billing and accounting purposes. What is accountable can include, for example, the amount of time spent on the apparatus. Based on the tracked and updated information, records can be generated to create invoices for the learning user.

The user can be an institute user, 254. The determinator 204 can allow the user to access information regarding at least one learning user (Step 112), such as using a query engine, 212, to query information regarding the at least one learning user. The institute user can also query her own profile.

FIG. 6 shows examples of interests, 400, of the institute user. The tracker 212 can track (Step 114) her attributes, including her usage of the apparatus; and an updater, 214, can update (Step 116) her profile, 216, if necessary.

She might be interested in recruiting, 402, candidates to join her institute. She can query users' profiles to access information regarding learning users. Information of interests can include some of his learning activities, such as the certificate received after working on a subject matter; the frequency a candidate changed jobs; his job preferences; his previous work experience; and his physical location.

In one embodiment, the institute user can access at least some learning activities of learning users. The extent of activities the institute user can access can be up to individual learning users. For example, one learning user may allow the institute user free access of all of its learning activities; and another learning user may restrict the institute user from accessing the titles of the courses he failed.

The institute user can query the system, by asking questions. Methods for a system to comprehend and to answer questions can be found, for example, in U.S. patent, entitled, Learning Method And System Based on Questioning, U.S. Pat. No. 5,836,771.

In another embodiment, she can answer multiple choice questions from the apparatus to formulate her request. She can specify characteristics of her ideal candidate. Based on her specifications, the query engine 212 can automatically search and identify the one or more candidates with best-matched profiles with the characteristics of the ideal candidate. In another embodiment, based on her answers, software agents configured by her or the query engine, can be generated to search the user profile database automatically for a number candidates that best match her requests. The agents or searches can be automatically activated due to changes in information of the institute user, or changes in information of certain learning users. Criteria of searches can be automatically updated in view of such changes before the query engine automatically launches the appropriate search. For example, the institute user might have to find two such candidates instead of one. Such updates and searches can be done daily or weekly.

The apparatus can further establish contact between the institute user and the one or more candidates identified. For example, initially, the candidates identified by the searches do not have to include their name, but just their qualifications. In one embodiment, if the institute user is interested in one or more of the candidates identified, she can highlight those candidates. The apparatus would have general information regarding the position transmitted to the candidates. An interested candidate can have his identity revealed to the institute user, again through the apparatus. With the candidate's permission, his picture can also be transmitted to the institute user. Then the apparatus can have the institute user's identity with a more detailed description of the job position transmitted to the candidate, and can set up an initial interview for the candidate.

The tracker 212 can track a number of the institute user's recruiting activities, such as (i) the number of candidates she identified to be potential candidates, (ii) the number of candidates referred to her, and (iii) the number of queries she did, and the time she did each of them. The updater 214 can update her profile based on the tracked information. This can be for setting up billing and accounting records. Such records can be used to create invoices for the institute user.

The institute user might be interested in advertising, 404, her job opening to be filled, or her product, which can be a service. The apparatus includes an advertisement generator, which allows her to advertise. In one embodiment, the generator formats the advertisement provided by the user, based on instructions from the user. For example, the user might specify the size of the advertisement, and its location. The advertisement can be targeted directly to specific users, 405, interested in her institute, such as interested in her products, or her type of jobs. This can be done, for example, by showing the advertisement on the screen of the learning materials related to the institute, such as related to the products or the type of jobs. In one embodiment, the advertisement is only presented to learning users. In another embodiment, the advertisement can be restricted from being presented to other institute users that sell products similar to the institute user, or are in the same field or industry sector as the institute user. As an example, the institute user is in home construction, and her advertisement of recruiting construction workers will not be presented to other home construction institute users.

The tracker 212 can track the size of the advertisement, the location the advertisement to be placed, the number of advertisements posted, and the duration of the postings. The tracker can also track the number of times the page with her advertisement has been accessed. The updater can update information of the institute user based on the tracked information. Then, the information regarding learning users the institute can access includes the number of times her advertisement has been shown to learning users.

She might want to use the apparatus as technical supports for her products, by providing appropriate training, 407, for them. She might also want to identify interests, 406, in her new products. In one embodiment, she can provide learning materials regarding her new products to the apparatus for users to learn. For example, her new product is a handheld machine. Learning users can use the apparatus to learn how to use the many features of the machine. The tracker tracks the usage of the learning users. The institute user has built into the machine a feature X and a feature Y that typical users have to learn before they know how to use them. The institute user thinks that feature X is dynamic, and none of their competitors have such a feature; and feature Y should be quite easy to use. However, less than 1% of the users have learnt how to use feature X. Also, 90% of learning users have difficulties learning how to use feature Y, as shown, for example, by the same learning users going back to learn feature Y more than three times. Such information regarding learning users can be tracked to provide market information on (learning users' interests in) the machine back to the institute user. The institute user can use such market information to help them improve on their next release. For example, probably for the next generation handheld machine, feature X should be dropped, and the user-friendliness aspect of feature Y should be enhanced. One way to feed the learning users' interests back to the institute user is by updating the institute user profile with such information.

Her interest might be to train her employees, 408, such as by providing in-house training for them. She can also get training herself through accessing learning materials. For example, she is a project supervisor using the apparatus to learn new techniques in HDSL installation, and to hire a person for ISDN installation. In one embodiment, she can be both an institute user and a learning user by having two different user identifiers.

She might be interested in updating her information or profile, 410, or accessing them, 412. The tracker can track the number of times she accessed or updated her profile, and the updater can update such user information accordingly.

To encourage learning users to work on learning materials, in one embodiment, they pay significantly less than institute users to access information from the apparatus. For example, institute users pay much more to query information from the apparatus than learning users to access learning materials from the apparatus. In one embodiment, learning users are paying significantly less when the annual payment or annual subscription fee of a learning user is less than 1/500 times of that of an institute user.

In another embodiment, a learning user is paying significantly less when it is free for the learning user to access information from the apparatus, while the institute user has to pay. The learning user does not have to pay the owner of the apparatus 200 or the provider of the method, 100, to access information, but the institute user has to.

In yet another embodiment, a learning user is paying significantly less when the learning user is paying approximately the per capita cost of operating the apparatus, and the institute user is paying above the per capita cost of operating the apparatus. One definition of per capita cost is the total expense of operating the apparatus divided by the total number of learning and institute users of the apparatus.

In one embodiment, a learning user is paying significantly less when the learning user is paying below the per capita cost of operating the apparatus, and the institute user is paying above the per capita cost of operating the apparatus.

FIGS. 7A-B show examples of hardware to implement one embodiment of the present invention. FIG. 7A shows one physical embodiment 650 implementing one embodiment of the invention, preferably in software and hardware. The embodiment 650 includes a server computer 652 and a number of client computers, such as 654, which can be a personal computer. Each client computer communicates to the server computer 652 through a dedicated communication link, or a computer network 656.

FIG. 7B shows one embodiment of a client computer 654. It typically includes a bus 659 connecting a number of components, such as a processing unit 660, a main memory 662, an I/O controller 664, a peripheral controller 666, a graphics adapter 668, a circuit board 680 and a network interface adapter 670. The I/O controller 664 is connected to components, such as a harddisk drive 672 or a floppy disk drive 674. The peripheral controller 666 can be connected to one or more peripheral components, such as a keyboard 676 or a pointing device 682. The graphics adapter 668 can be connected to a monitor 678. The circuit board 680 can be coupled to audio signals 681; and the network interface adapter 670 can be connected to the network 656, which can be the Internet, an intranet, the Web or other forms of networks. The processing unit 660 can be an application specific chip. In another embodiment, the client computer 654 is a thin-client, with much less computation and memory power than the server computer, 652.

Different elements in the present invention may be in different physical components. For example, the apparatus may be in a client computer. In another embodiment, the apparatus is in a client computer, except the learning materials storage medium, which is in a server computer. In yet another embodiment, the server computer also hosts a storage medium with the user profiles, 216. In one embodiment, the apparatus is in the server computer, except the presenter, which is in the client computer. The user receives information accessed from the client computer.

It should be obvious to those skilled in the art that different elements in the present invention can be implemented in hardware or software or both. For example, the determinator and the query engine can be written in software, or can be on a circuit, such as a field-programmable-gate-array, where the program embodying the determinator and the query engine is burnt into a circuit. As another example, a processing unit 660 can implement the determinator; a main memory 662 can store the user profile; the same or a different processing unit can implement the retriever and the query engine; and the same main memory or a different memory can store the learning material storage medium.

One embodiment of the present invention can be implemented in a Web server. The server includes a HTTP server or program that understands HTTP or equivalent protocol. Just as an example, the name of the server is www.joblearn.com.

A user executes his browser in his computer to access learning materials by entering an URL, such as the following:

http://www.joblearn.com/job/user=tassels&subject?vendor=microsoft&product=excel

From the URL, the browser determines that the protocol to use is HTTP. The browser also determines that the data packets are constructed based on the TCP format to establish a connection with the Web server, as specified by the HTTP protocol.

The browser then extracts the name of the Web server from the second component of the URL—www.joblearn.com—and attempts to establish a connection to the server.

To establish the connection, the browser can identify the IP address of the server. For example, the browser may retrieve the IP address from a domain name server.

Based on the IP address, the browser sends a request to the Web server to establish a TCP connection with the HTTP program running on the server. This can be through establishing the connection to the server with the default TCP port number, 80, for the HTTP program.

After the Web server receives and accepts the request, the browser transmits to the Web server other portions of the URL—

job/user=tassels&subject?vendor=microsoft&product=excel.

The Web server examines them, and invokes a program named job. Assume that previously a Web master has configured the Web server to identify the term, job, at that part of the URL as an indication of invoking an embodiment of the present invention. The Web server also determines that the remaining portions of the URL is a CGI script. To simplify the description, instead of stating that the program, job, does a certain task, the description states that the Web server does the task.

The script indicates that the user is identified as tassels. Based on information previously stored, the Web server, based on the program, job, determines the identifier belong to a learning user. The Web server further determines that tassels intends to learn Microsoft Corporation's product Excel. Appropriate learning materials are then re-transmitted back to the browser to be presented to the learner.

In the above example, information is accessed through a HTTP server. Other commonly available accessing mechanisms are also applicable, such as JDBC or CORBA.

In addition to learning, the user may be asked to update changes in his profile, such as changes in his learning objectives. For example, he has changed his interest, and presently, he wants to learn how to build a house. Based on his availability, appropriate classes and/or learning materials are directed to him.

The Web server can also track his progress as he is learning. In this example, assume that classes are available through his computer. The server can perform a number of tracking tasks. For example, the Web server can mark the screen he looks at before he logs off from the server; the Web server can keep track of the duration of time for him to finish the course; and the server can keep track of whether or not he has graduated from the course. His user profile can be updated by such tracked information and analyzed data. Also, such information regarding the learning user can be accessed by institute users.

In another example, assume that the user is an institute user who may be interested in generating an advertisement on the Web server. As an example, a Web page generated by the Web server for an institute user includes a dialog box with an advertising button. Clicking that button by the institute user brings up an advertising file upload page, which can include questions, such as the size of the advertisement, the location, the pricing structure, and the time to post the advertisement. The location can specify the area on a typical screen, and the subject matter the screen is displaying. The user also can attach to the file, her advertisement clip, which can be a html page, a Java applet, an audio stream, animated streaming data, such as a video stream or a multimedia stream, or other file formats, or some combination of the above. The video stream or multimedia stream may be compressed by standard algorithms, such as based on MPEG format. The advertisement clip can be used as a banner and can be linked to learning materials related to the products sold by the institute user. When such learning materials are shown on a screen, the advertisement banner will be shown also. Through the institute user's browser, he can upload the file with the attachment clip to the Web server. In one embodiment, the advertisement clip can be hypertext-linked to the institute user's home page.

The Web server can monitor the number of hits on the page with the advertisement, or the number of times the clip or the advertisement was accessed. The Web server can also monitor the number times the institute's own home page has been hypertext-linked. Such information can be stored as information regarding the corresponding users accessing the clip or linking to the institute user's home page. If the users are learning users, such information can be considered as information regarding the learning users. Also, such information can be stored in the institute user profile area.

The institute user may like to change its advertisement on the Web server. In one embodiment, she is allowed to modify the scripts for the Java applet or the html page. She may be allowed to generate a modified clip to be uploaded to the Web server.

The institute user may be interested in accessing her profile to determine the number of hits on the clip. Statistics, such as the type of users accessing that clip, can also be stored in the profile area of the institute user.

The usage by the institute user with the results can be tracked, and stored in the institute user profile area.

Using a Web server to host the apparatus or a part of the apparatus, 200, can make economic sense. The price of developing the apparatus, or a portion of the apparatus, 200, on a Web server and maintaining it may cost a few million dollars. However, once developed, many users can access information through it from many places and at any time. If the learning users do not have to pay much to learn from it, one main obstacle of learning—tuition—is removed. Not only can the server (a) give the learning users the freedom to choose when, and in many occasions, where to learn, and (b) guide the users to the appropriate learning materials to fill their individual needs, learning from the server is also relatively inexpensive. Many more will learn and benefit from the invention. This will enrich them, help their career and, ultimately, help their employers and the society.

From another perspective, with many people learning from the server, a large database of information regarding learning users can be created. Many institute users are interested in the server in view of the large database of information regarding learning users, and the heavy traffic by those users. Institute users are interested for many different reasons. For example, they might want to use it to hire employees. For companies to succeed, they need the right employees, and they are willing to pay recruiters to get them. As an illustration, assume a company hires 25 employees per year from the server, and the average annual income with benefit of the 25 employees is $50,000. The company normally pays at least 20% of the annual income to recruiters. This translates to paying the recruiters $250,000 per year.

In additional to recruiting, the company can use the server to advertise their products and their jobs to users interested in them. Those users can be easily identified by, for example, the learning materials they work on, and their preferences as shown in their user profiles.

The company may also want to use the server to support their products. This can be done by having learning materials regarding their products available for learning users of the server.

The company can also use the server as to find out users' interest in their products. With learning materials on the products at the server, the company can measure users' interest in different features of the products by identifying how often materials regarding different features are being accessed, as discussed above.

Thus, institute users are willing to make reasonable payments to use the server. They are probably willing to pay much higher than what learning users are willing to pay. The institute users might even prefer to provide learning users with free access to the server. This is because the institute users are interested in lots of information regarding learning users, and a lot of traffic through the server.

In one embodiment, a learning material ascertainer or a learning determinator, in determining whether learning materials should be presented to a user, decides on the documents a search engine should search for among cataloged documents. As an example, the user is a software test engineer, and the learning determinator decides that learning materials on performance test specification of an ATM networking software program should be presented to her. The search engine in the learning determinator identifies all of the documents related to such test specifications under the category of performance test specification and extracts them from a database.

As an illustration, the company of the user does not have any performance test specification of an ATM networking software program. Then, the search engine can identify related documents based on one or more rules. One set of such rules may be relationship rules, which group related terms, such as related jobs, together. In one approach, if the search engine has to search for any one term, the search engine automatically searches for all of its related terms. For example, the term, frame relay, is related to the term, ATM. One relationship rule groups the two terms together. Although the company does not have any documents on a performance test specification of a ATM networking software program, the company has such documents for frame relay. Based on the relationship rule, the search engine also searches for documents on performance test specifications of frame relay software. Such documents are identified, and extracted for the user.

Note that cataloging the documents reduces the amount of searching required. However, it is not necessary to catalog the documents before they can be searched. One embodiment does not include a catalog builder and cataloged documents. Searching can be performed directly on all of the documents in the database. In this embodiment, searching can be based on key-words, including the job titles or the job position. The query can be based on the job description, which describes, for example, the type of work involved in the job.

After the documents are extracted, they can be organized for presentation. There can be different rules to organize extracted documents in the company. In one embodiment, organization includes prioritizing the extracted documents, so that, for example, higher priority documents can be presented before lower priority documents.

The documents can be organized based on the company information, which can be information not available to the public. For example, the company information includes document chronology, document version, the person generating the document, and a user profile.

As mentioned, one rule to organize is based on the chronology of the extracted documents. For example, documents that were recently created have higher priority than those created long time ago.

Another rule is based on the versions of the documents. It is typical to have a number of iterations before the final document is produced. Each iteration can be a version. One organization rule is to rank the older versions with higher priority, and to present them before the newer versions. Such a rule helps the user understand the process to get to the final document.

The identity of the person generating the documents can be used for an organization rule. For example, if the originator is the user, the document has a low priority.

Another rule includes information in the user profile, such as the user's job position. For example, a document is related to more than one job position. One rule can be that such a document is of lower priority as compared to a document that is related only to the user's job position. One or more of such rules help organize the extracted documents.

Through learning from the presented materials, the user can produce her own documents, which can be used as structured documents in the database. As an illustration, after learning materials are presented by a presenter to the user, she does her job with the help of a generator. This can be her word processor, simulator, or the like. For example, she starts to write the performance test specification of the ATM networking software program. As she does her job, at least one such document is generated, such as a version of the performance test specification. That document is stored in a document database. Usually she will generate, through the generator, many versions. In one embodiment, all of these versions are stored.

In one embodiment, the documents created by the user are automatically cataloged. For example, the profile of the user can be in the apparatus with the learning determinator, and the job the user is performing can also be in the apparatus. Based on such information, the one or more documents generated can be automatically categorized. For example, the documents generated by the user in the above example can be classified under the category of performance test specifications, and can be stored as such cataloged documents. Next time when another user needs to learn about a performance test specification, there will be one more set of documents to present to him. As stated above, the set of documents may have many versions. The search engine may limit the number of versions to be extracted, and an organizer coupled to the search engine may determine the priority of those extracted documents to be presented to the other user.

In one embodiment, the extracted documents can fit into specific templates. In one embodiment, a template can shape an extracted document when the document was created, or can describe or identify the shape of the extracted document. Every document with the same template can include identical text or formatting that is based on the template. Such text or formatting can be the style of the documents or can include macros, which can be modules, where each module can denote many operations. For example, in one set of extracted documents, the template is for the company's annual report; then the template includes sections covering the company's revenue, cash flow, balance sheet and forecast.

The catalog builder can group the structured documents in the database under different categories. The documents grouped or categorized can be known as cataloged documents. In one embodiment, the catalog builder builds the catalog based on the organization chart, or the linked job titles of the company. In another embodiment, categories in the catalog is similar to nodes in the organization chart, or the linked job titles of the company; for example, each category in the catalog corresponding to a job position or a job title. In another embodiment, a job position can be linked to more than one category. In yet another embodiment, at least a part of the catalog is built based on key words in the documents, or templates used in the documents.

The catalog can be reduced in size. In one embodiment, one specific catalog also depends on at least one characteristic of the profile of the user. It can be called a personalized catalog. For example, only categories related to the user's job position are included in this specific catalog. So, in one example, only categories for the user's job position, the user's direct superiors' position and the job positions of the peers of the user are included. This specific catalog can be much smaller than the catalog describing all of the company's job positions.

The catalog builder can also be responsible to reference each document by, or group each document to, its corresponding one or more categories. In one embodiment, each document, in addition to its content, also includes one or more attributes describing the document. These attributes are information regarding the document. But, unlike the content the document, these attributes typically are information that do not have to be directly conveyed to the user receiving the document, before the user can learn from the document. For example, attributes can include the name of the person who creates the document, the job she was doing when she created the document, its version, and the identification of the document's template, if there is one. Note that the document can be received by the user, so if she wants to, she can decipher the document to get the attributes.

The document categorizing process can depend on at least one of the document's attributes. For example, if the user is an architect, and she has created a design of a building, then the attributes of the document holding the design can include her job title. Based on the job title, the document can be grouped to, categorized to or referenced by the category of an architect in a catalog. In another example, the shape or format of a document can be described by a template. That template fits into a category of a catalog. Then that document can be referenced by that category, which can be related to a specific job.

Other embodiments of the invention will be apparent to those skilled in the art from a consideration of this specification or practice of the invention disclosed herein. It is intended that the specification and examples be considered as exemplary only, with the true scope and spirit of the invention being indicated by the following claims. 

1. A computing apparatus comprising: a first computing device; and a networked storage device accessible at least via a network, the networked storage device coupled to the first computing device, and the networked storage device to have stored thereon instructions that, when executed, cause the apparatus to: receive, via a web server, a web request from a user using a second computing device to access a first set of materials via a network that includes the Internet, the web request including a user identifier identifying the user, and a service identifier at least indicating to access the first set of materials, wherein the first set of materials includes materials on a first project for the user; track at least some of the user's usage of the first set of materials, including accessing the first set of materials; and receive, via a web server, a web request from a first entity using a third computing device to access information regarding the tracked user's usage of the first set of materials, via a network that includes the Internet, the web request including a user identifier identifying the first entity, and a service identifier at least indicating to access the information regarding the tracked user's usage of the first set of materials; wherein the instructions, when executed, further cause the apparatus to: search for materials related to the first project to extract materials for the user; send the extracted materials related to the first project via a network that includes the Internet, to the second computing device to be presented; and cause the generating of an accounting record to charge the first entity so as to allow the first entity to access at least some of the information regarding the tracked user's usage of the first set of materials.
 2. A computing apparatus as recited in claim 1 wherein the first project is a project the user is working on.
 3. A computing apparatus as recited in claim 1 wherein at least some of the materials to be searched include documents that are categorized, and wherein to search for materials includes to search the categorized documents to extract more than one of the categorized documents, and wherein at least some of the extracted categorized documents are organized based on one or more rules to prioritize them to be presented to the user.
 4. A computing apparatus as recited in claim 1 wherein the extracted materials include materials generated by a person on a second project, which is different from but related to the first project.
 5. A computing apparatus as recited in claim 4 wherein the first project has a first identifier, and the second project has a second identifier, which is different from the first identifier.
 6. A computing apparatus as recited in claim 5, wherein the instructions, when executed, cause the apparatus to search for the second project depends on using at least a rule relating the first identifier and the second identifier.
 7. A computing apparatus as recited in claim 5, wherein to search for materials includes to search for the second identifier.
 8. A computing apparatus as recited in claim 5, wherein the second project includes a description in addition to the second identifier, and wherein to search for materials includes to search the description.
 9. A computing apparatus as recited in claim 1, wherein to search for materials includes to search based on time.
 10. A computing apparatus as recited in claim 1, wherein to search for materials includes to search based on a location of the user.
 11. A computing apparatus as recited in claim 1 wherein the user is an employee of the entity, and the entity is a company.
 12. A computing apparatus as recited in claim 1 wherein the user is a student, not an employee of the entity, and the entity is a school. 